var express = require('express');
var router = express.Router();

var gwxk = require(__dirname + '/../lib/gwxk.lib.js');
var redis = require(__dirname + '/../lib/redis.js');
/* GET users listing. */
router.get('/', function(req, res, next) {
  res.send('users-index');
});

//用户登录
router.post('/login', function(req, res, next) {
  console.log(req.body);

  var $user = req.body.username;
  var $password = req.body.password;
  var op = {
    username:$user,
    password:$password
  };
  gwxk.login(op, function (data) {
    "use strict";
    if(data.status){
      var token = md5($user+new Date().toString());
      redis.setToken(token, data.data)
          .then(function () {
            data.data.token = token;
            res.json(data);
          })
          .catch((err)=>{
            console.warn(err);
          })
    }
    else{
      res.json(data);
    }
  });

});

//课表信息
router.get('/getCourse', function (req, res, next) {
  "use strict";
  //res.json({
  //  "status": true,
  //  "data": [
  //    [
  //      " ",
  //      " ",
  //      "操作系统实践（英、实）郑琪讲师1-16(周)南实C503",
  //      " ",
  //      " ",
  //      " ",
  //      " "
  //    ],
  //    [
  //      "数据挖掘蒋盛益教授1-16(周)南E302",
  //      " ",
  //      "计算机英语（1）姚敏锋副教授1-16(周)南F405",
  //      " ",
  //      " ",
  //      " ",
  //      " "
  //    ],
  //    [
  //      " ",
  //      " ",
  //      " ",
  //      " ",
  //      " ",
  //      " ",
  //      " "
  //    ],
  //    [
  //      "计算机接口技术马文华教授1-16(周)南E201",
  //      " ",
  //      "互联网程序设计（实）谢建国教授1-16(周)南实A403",
  //      " ",
  //      "数据库工程郝鹃讲师1-16(周)南实C507",
  //      " ",
  //      " "
  //    ],
  //    [
  //      "计算机接口技术马文华教授1-16(周)南E201",
  //      " ",
  //      "互联网程序设计（实）谢建国教授1-16(周)南实A403",
  //      " ",
  //      "数据库工程郝鹃讲师1-16(周)南实C507",
  //      " ",
  //      " "
  //    ],
  //    [
  //      " ",
  //      " ",
  //      " ",
  //      " ",
  //      "组网技术（实）马朝辉讲师1-16(周)南实A203",
  //      " ",
  //      " "
  //    ],
  //    [
  //      " ",
  //      " ",
  //      " ",
  //      " ",
  //      "组网技术（实）马朝辉讲师1-16(周)南实A203",
  //      " ",
  //      " "
  //    ]
  //  ],
  //  "info": null
  //});
  var token = req.query.token;
  redis.getToken(token)
  .then(($data)=> {
    var field = null;
    if(req.query.xq) {
      field = {
        xq: req.query.xq
      };
    }
    gwxk.getCourse($data.cookie, field, function (data) {
      res.json(data);
    });
  })
  .catch((err)=>{
    var wrong = {
      status: false,
      err: err,
      info :'token error'
    };
    res.json(wrong);
  });
});

//课表选项
router.get('/getCourseOption', function (req, res, next) {
  "use strict";
//  res.json({
//  "status": true,
//      "data": {
//    "selected": "2015-2016-2",
//        "options": [
//      {
//        "text": "2016-2017-2",
//        "value": "2016-2017-2"
//      },
//      {
//        "text": "2016-2017-1",
//        "value": "2016-2017-1"
//      },
//      {
//        "text": "2015-2016-2",
//        "value": "2015-2016-2"
//      },
//      {
//        "text": "2015-2016-1",
//        "value": "2015-2016-1"
//      },
//      {
//        "text": "2014-2015-2",
//        "value": "2014-2015-2"
//      },
//      {
//        "text": "2014-2015-1",
//        "value": "2014-2015-1"
//      },
//      {
//        "text": "2013-2014-2",
//        "value": "2013-2014-2"
//      },
//      {
//        "text": "2013-2014-1",
//        "value": "2013-2014-1"
//      },
//      {
//        "text": "2012-2013-2",
//        "value": "2012-2013-2"
//      },
//      {
//        "text": "2012-2013-1",
//        "value": "2012-2013-1"
//      },
//      {
//        "text": "2011-2012-2",
//        "value": "2011-2012-2"
//      },
//      {
//        "text": "2011-2012-1",
//        "value": "2011-2012-1"
//      },
//      {
//        "text": "2010-2011-2",
//        "value": "2010-2011-2"
//      },
//      {
//        "text": "2010-2011-1",
//        "value": "2010-2011-1"
//      },
//      {
//        "text": "2009-2010-2",
//        "value": "2009-2010-2"
//      },
//      {
//        "text": "2009-2010-1",
//        "value": "2009-2010-1"
//      },
//      {
//        "text": "2008-2009-2",
//        "value": "2008-2009-2"
//      },
//      {
//        "text": "2008-2009-1",
//        "value": "2008-2009-1"
//      },
//      {
//        "text": "2007-2008-2",
//        "value": "2007-2008-2"
//      },
//      {
//        "text": "2007-2008-1",
//        "value": "2007-2008-1"
//      },
//      {
//        "text": "2006-2007-2",
//        "value": "2006-2007-2"
//      },
//      {
//        "text": "2006-2007-1",
//        "value": "2006-2007-1"
//      },
//      {
//        "text": "2005-2006-2",
//        "value": "2005-2006-2"
//      },
//      {
//        "text": "2005-2006-1",
//        "value": "2005-2006-1"
//      },
//      {
//        "text": "2004-2005-2",
//        "value": "2004-2005-2"
//      },
//      {
//        "text": "2004-2005-1",
//        "value": "2004-2005-1"
//      }
//    ]
//  },
//  "info": null
//});
  var token = req.query.token;
  redis.getToken(token)
  .then(($data)=> {
    gwxk.getCourseOption($data.cookie, function (data) {
      res.json(data);
    });
  })
  .catch((err)=>{
    var wrong = {
      status: false,
      err: err,
      info :'token error'
    };
    res.json(wrong);
  });
});

//成绩查询
router.get("/getScore", function (req, res, next) {
  "use strict";
  var token = req.query.token;
  redis.getToken(token)
      .then(($data)=> {
        if(req.query.xq) {
          var field = {
            xq: req.query.xq
          };
          gwxk.getScore($data.cookie, field, function (data) {
            res.json(data);
          });
        }
        else{
          let wrong = {
            status: false,
            info :'缺少必要参数'
          };
          res.json(wrong);
        }
      })
      .catch((err)=>{
        let wrong = {
          status: false,
          err: err,
          info :'token error'
        };
        res.json(wrong);
      });
});

//成绩选项
router.get('/getScoreOption', function (req, res, next) {
  "use strict";
  //res.json({
  //  "status": true,
  //  "data": {
  //    "options": [
  //      {
  //        "text": "---请选择---",
  //        "value": ""
  //      },
  //      {
  //        "text": "2016-2017-2",
  //        "value": "2016-2017-2"
  //      },
  //      {
  //        "text": "2016-2017-1",
  //        "value": "2016-2017-1"
  //      },
  //      {
  //        "text": "2015-2016-2",
  //        "value": "2015-2016-2"
  //      },
  //      {
  //        "text": "2015-2016-1",
  //        "value": "2015-2016-1"
  //      },
  //      {
  //        "text": "2014-2015-2",
  //        "value": "2014-2015-2"
  //      },
  //      {
  //        "text": "2014-2015-1",
  //        "value": "2014-2015-1"
  //      },
  //      {
  //        "text": "2013-2014-2",
  //        "value": "2013-2014-2"
  //      },
  //      {
  //        "text": "2013-2014-1",
  //        "value": "2013-2014-1"
  //      },
  //      {
  //        "text": "2012-2013-2",
  //        "value": "2012-2013-2"
  //      },
  //      {
  //        "text": "2012-2013-1",
  //        "value": "2012-2013-1"
  //      },
  //      {
  //        "text": "2011-2012-2",
  //        "value": "2011-2012-2"
  //      },
  //      {
  //        "text": "2011-2012-1",
  //        "value": "2011-2012-1"
  //      },
  //      {
  //        "text": "2010-2011-2",
  //        "value": "2010-2011-2"
  //      },
  //      {
  //        "text": "2010-2011-1",
  //        "value": "2010-2011-1"
  //      },
  //      {
  //        "text": "2009-2010-2",
  //        "value": "2009-2010-2"
  //      },
  //      {
  //        "text": "2009-2010-1",
  //        "value": "2009-2010-1"
  //      },
  //      {
  //        "text": "2008-2009-2",
  //        "value": "2008-2009-2"
  //      },
  //      {
  //        "text": "2008-2009-1",
  //        "value": "2008-2009-1"
  //      },
  //      {
  //        "text": "2007-2008-2",
  //        "value": "2007-2008-2"
  //      },
  //      {
  //        "text": "2007-2008-1",
  //        "value": "2007-2008-1"
  //      },
  //      {
  //        "text": "2006-2007-2",
  //        "value": "2006-2007-2"
  //      },
  //      {
  //        "text": "2006-2007-1",
  //        "value": "2006-2007-1"
  //      },
  //      {
  //        "text": "2005-2006-2",
  //        "value": "2005-2006-2"
  //      },
  //      {
  //        "text": "2005-2006-1",
  //        "value": "2005-2006-1"
  //      },
  //      {
  //        "text": "2004-2005-2",
  //        "value": "2004-2005-2"
  //      },
  //      {
  //        "text": "2004-2005-1",
  //        "value": "2004-2005-1"
  //      }
  //    ]
  //  },
  //  "info": null
  //});
  var token = req.query.token;
  redis.getToken(token)
  .then(($data)=> {
    gwxk.getScoreOption($data.cookie, function (data) {
      res.json(data);
    });
  })
  .catch((err)=>{
    var wrong = {
      status: false,
      err: err,
      info :'token error'
    };
    res.json(wrong);
  });
});

//等级考试查询
router.get("/getCet", function (req, res, next) {
  var token = req.query.token;
  redis.getToken(token)
      .then(($data)=> {
        gwxk.getCet($data.cookie, function (data) {
          res.json(data);
        });
      })
      .catch((err)=>{
        var wrong = {
          status: false,
          err: err,
          info :'token error'
        };
        res.json(wrong);
      });
});

function md5(data) {
  var Buffer = require("buffer").Buffer;
  var buf = new Buffer(data);
  var str = buf.toString("binary");
  var crypto = require("crypto");
  return crypto.createHash("md5").update(str).digest("hex");
}

module.exports = router;
